*****************************************************************
AUTOMATSKI TESTER RADOVA - Autor: Aleksandar Kartelj (2013) v1.1
*****************************************************************

Tester je napisan u cistom Bash script jeziku. 

Preporucljivo je da se tester koristi root nalogom ukoliko je moguce.  
Logovanje na root nalog je moguce komandom "sudo su", nakon cega sistem pita za korisnicku sifru. 

Struktura direktorijuma je sledeca:
	a) test1.sh
	b) testn.sh
	c) testall.sh
	d) primer_upotrebe
	e) UPUTSTVO_ZA_UPOTREBU.txt (ovaj fajl)


**********************************************************************
test1.sh 
**********************************************************************
Sluzi za testiranje samo jedne C datoteke sa jednim test primerom.
Da bi istestirali njegovo ponasanje probajte da ukucate:

>./test1.sh "primer_upotrebe/radovi/Student1/1.c" k{1k} u{4u} i{5i} 
>DA

ili 

>./test1.sh "primer_upotrebe/radovi/Student1/1.c" k{4k} u{5u} i{5i}  
>NE

Program dat u primeru uzima jedan broj kao argument komandne linije, a 
drugi sa standardnog ulaza i rezultat ispisuje na standardni izlac. 

Podaci koji se upisu u region k{...k} su argumenti komandne linije.
Oni koji se upisu izmedju u{...u} su argumenti standardnog ulaza, 
i konacno izmedju i{...i} je dat ocekivani izlaz. 

U prvom slucaju je vracen odgovor DA jer je 1+4=5, a u drugom NE jer 4+5!=5



**********************************************************************
testn.sh
**********************************************************************
Ovaj izvrsni skript sluzi da se istestira ceo niz test primera za zadatu C datoteku. Npr.:

>./testn.sh primer_upotrebe/radovi/Student1/1.c primer_upotrebe/1.t 
>/home/aca/test2/tester, primer_upotrebe/radovi/Student1/1.c, el:1, pts:8, uk:8

Ovde se vidi da je za direktoriju Student1, program 1.c prosao eliminacioni
test primer i preostalih 8 test primera. Pritom su test primeri zadati u
fajlu primer_upotrebe/1.t koji izgleda ovako:

k{19k} u{644u} i{663i}
k{20k} u{645u} i{665i}
k{23k} u{642u} i{665i}
k{19k} u{100u} i{119i}
k{19k} u{-21u} i{-2i}
k{19k} u{-9u} i{10i}
k{19k} u{0u} i{19i}
k{19k} u{-7u} i{12i}
k{0k} u{644u} i{644i}

Prvi u nizu test primera je eliminacioni, a ostali se broje u poene. 

Ukoliko se kao poslednji argument pri pozivu ubaci opcija -v, tester ce prikazivati
u toku izvrsavanja koji su test primeri prosli a koji nisu. 

>./testn.sh primer_upotrebe/radovi/Student1/1.c primer_upotrebe/1.t -v
>1 : DA
>2 : DA
>3 : DA
>4 : DA
>5 : DA
>6 : DA
>7 : DA
>8 : DA
>9 : DA
>/home/aca/test2/tester, primer_upotrebe/radovi/Student1/1.c, el:1, pts:8, uk:8

**********************************************************************
testall.sh
**********************************************************************
Ovaj skript testira kompletan direktorijum sa radovima veceg broja studenata. 
Npr. ako hocemo da proverimo sve radove u direktorijumu primer_upotrebe/radovi,
mozemo to uciniti na sledeci nacin:

>./testall.sh primer_upotrebe/radovi/ "1.c" primer_upotrebe/1.t 
/home/aca/test2/tester/primer_upotrebe/radovi/Student1, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student10, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student2, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student3, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student4, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student5, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student6, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student7, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student8, 1.c, el:1, pts:8, uk:8
/home/aca/test2/tester/primer_upotrebe/radovi/Student9, 1.c, el:1, pts:8, uk:8

Ovde vidimo da su svi studenti imali tacan zadatak 1.c. Rezultati se upisuju
u datoteku rezultati.csv koja se nalazi u aktivnom direktorijumu, tj. direktorijumu
iz kog se pokrece ./testall.sh

Ukoliko je za kompilaciju potrebno ukljuciti math biblioteku, poziv se menja u:
>./testall.sh primer_upotrebe/radovi/ "1.c -lm" primer_upotrebe/1.t

Takodje se umesto jedne .c datoteke moze upisati vise datoteka, npr:
>./testall.sh primer_upotrebe/radovi/ "1.c mojabiblioteka.c -lm" primer_upotrebe/1.t



